package main

import "fmt"

func main() {
	/*
		1.数据类型：
			基本类型：int, float, string, bool...
			复合类型：array, slice, map, function, pointer, channel...

		2.数组的数据类型：
			[size]type  数组的长度也是数组类型的组成部分
				eg：[10]int 和 [20]int 表示不同的类型

		3.值传递：理解为存储的数值本身
			将数据传递给其他的变量，传递的是数据的副本(备份)
				int, float, string, bool, array

		4.引用类型：理解为存储的数据的内存地址
			slice,map...

		5.数组的比较：
			比较的两个数组的长度与类型都要一致
			比较的是数组的对应下标位置的数值是否一致(true/false)
			eg：arr1 == arr5 //true/false
		注：数组支持 “==”、“!=” 操作符，因为内存总是被初始化过的

	*/
	//array 的值传递
	arr1 := [5]int{1, 2, 3, 4, 5}
	arr5 := arr1
	fmt.Println(arr1) //[1 2 3 4 5]
	fmt.Println(arr5) //[1 2 3 4 5]
	arr5[1] = 100
	fmt.Println(arr1) //[1 2 3 4 5]
	fmt.Println(arr5) //[1 100 3 4 5]

	a := 1
	b := 2
	fmt.Println(a == b)       // 比较 a 和 b 的数值是否相等
	fmt.Println(arr1 == arr5) // 比较数组所对应的下标位置的数值是否相等
	arr5[1] = 2
	fmt.Println(arr1 == arr5) // true

}
